This fixes
- one instance of using XEN_BLOCK_EVENTS where XEN_UNBLOCK_EVENTS was
meant
- four instances of left-over cli-s that should have been replaced
with XEN_BLOCK_EVENTS
- one instance of slightly wrong placement (without resulting in ill
behavior, but needlessly making the diff to native more complex)
Signed-off-by: Jan Beulich <jbeulich@novell.com>
CFI_RESTORE_STATE
bt $TIF_NEED_RESCHED,%edx
jnc sysret_signal
- XEN_BLOCK_EVENTS(%rsi)
+ XEN_UNBLOCK_EVENTS(%rsi)
pushq %rdi
CFI_ADJUST_CFA_OFFSET 8
call schedule
1: movl $_TIF_NEED_RESCHED,%edi
/* Use IRET because user could have changed frame. This
works because ptregscall_common has called FIXUP_TOP_OF_STACK. */
- cli
+ XEN_BLOCK_EVENTS(%rsi)
jmp int_with_check
badsys:
call schedule
popq %rdi
CFI_ADJUST_CFA_OFFSET -8
- cli
+ XEN_BLOCK_EVENTS(%rsi)
jmp int_with_check
/* handle signals and tracing -- both require a full stack frame */
popq %rdi
CFI_ADJUST_CFA_OFFSET -8
andl $~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP),%edi
- cli
+ XEN_BLOCK_EVENTS(%rsi)
jmp int_restore_rest
int_signal:
1: movl $_TIF_NEED_RESCHED,%edi
int_restore_rest:
RESTORE_REST
- cli
+ XEN_BLOCK_EVENTS(%rsi)
jmp int_with_check
CFI_ENDPROC
call schedule
popq %rdi
CFI_ADJUST_CFA_OFFSET -8
- XEN_BLOCK_EVENTS(%rsi)
GET_THREAD_INFO(%rcx)
+ XEN_BLOCK_EVENTS(%rsi)
/* cli */
jmp retint_check